iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
自我挑戰組

《雜學》 ︳MISCELLANEOUS LEARNING系列 第 9

〈入門.行列下〉︳GETTING STARTED ON DICTIONARIES AND SETS

  • 分享至 

  • xImage
  •  

          前人作書,後輯成典,或為圭臬,後人循之也。或為字典,說文解字釋萬物也。前人作詩,後輯成集者,集前人之大成於書也。字典集合者,二者亦列,無其序也。字典者,列主從也。集合者,列主也。主,以名命之,其名不可易也,主若眾,名則不可同也,謂「key」。從,物也,其類不拘,謂「value」。

字典

          夫字典,列者,列主有從也,主從之分,冒號也,左主右從,不可渾殽。其主成群,讀之以分。夫字典之取更,更主從之法,充刪皆可,唯從可易。更列之法,唯不可銜。取之法,取從以主,主於方括弧,方括弧置名旁,取主以dict.get(),欲取之主於括弧。

          問曰:「今有一字典,列五等諸侯也,乃有公五人。侯十人。伯十五人。子二十人。男二十人。書之,乃得?」

Peerage = {'公': 5, '侯': 10, '伯': 15, '子': 20, '男':20}
print(Peerage)
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20}

          問曰:「同上問,欲知伯幾人,何如?」
          術曰:「取伯也,以取從法,方知之也。」

Peerage = {'公': 5, '侯': 10, '伯': 15, '子': 20, '男':20}
print(Peerage)
print(Peerage['伯'], '人')
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20}
15 人

          問曰:「同上問,今有天子一人,欲充於字典,何如?」
          術曰:「先命其主名為'天子',再令其等數為1,乃得。」

Peerage = {'公': 5, '侯': 10, '伯': 15, '子': 20, '男':20}
print(Peerage)
Peerage['天子'] = 1
print(Peerage)
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20}
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20, '天子': 1}

          問曰:「同上問,今欲刪天子於五等諸侯,何如?」
          術曰:「以del()刪之。」

Peerage = {'公': 5, '侯': 10, '伯': 15, '子': 20, '男':20}
print(Peerage)
Peerage['天子'] = 1
print(Peerage)
del Peerage['天子']
print(Peerage)
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20}
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20, '天子': 1}
{'公': 5, '侯': 10, '伯': 15, '子': 20, '男': 20}

集合

          夫集合,列者,唯列主也,是謂字典者,無其從也。夫集合之取更,無取之法矣,更之法,唯不可銜也。夫充,或加之,add()也、或增之,update()也。夫刪,或除之,remove()也、或棄之,discard()也、或丟之,pop()也。注曰:丟之者,肆意刪之也。集合者,有比之法,一曰差集,「 - 」也。二曰交集,「 & 」也。三曰並集,「 | 」也。

          問曰:「今有一集合,集五雜俎之十八般,安能書之?」
          答曰:「書之也,書之無定序也」

EighteenArms = {'弓', '弩', '槍', '刀', '劍', '矛', '盾', '斧', '鉞', '戟', '鞭', '簡', '槁', '殳', '叉', '杷頭', '綿繩套孛', '白打'}
print(EighteenArms)
{'劍', '矛', '鞭', '弓', '槍', '盾', '斧', '鉞', '刀', '綿繩套孛', '白打', '殳', '叉', '簡', '戟', '槁', '弩', '杷頭'}

          問曰:「同上問,今欲充戈於十八般,方致十九般,何如?」
          術曰:「欲充,則增之,乃得十九般。」

EighteenArms = {'弓', '弩', '槍', '刀', '劍', '矛', '盾', '斧', '鉞', '戟', '鞭', '簡', '槁', '殳', '叉', '杷頭', '綿繩套孛', '白打'}
print(EighteenArms)
EighteenArms.add('戈')
print(EighteenArms)
{'弓', '斧', '槍', '盾', '戟', '劍', '綿繩套孛', '白打', '刀', '弩', '鞭', '殳', '叉', '矛', '槁', '簡', '杷頭', '鉞'}
{'弓', '斧', '槍', '盾', '戟', '劍', '綿繩套孛', '白打', '刀', '戈', '弩', '鞭', '殳', '叉', '矛', '槁', '簡', '杷頭', '鉞'}

          問曰:「同上問,今欲刪簡於十九般,方致十八般,何如?」
          術曰:「欲刪,則除之,乃得十八般。」

EighteenArms = {'弓', '弩', '槍', '刀', '劍', '矛', '盾', '斧', '鉞', '戟', '鞭', '簡', '槁', '殳', '叉', '杷頭', '綿繩套孛', '白打'}
print(EighteenArms)
EighteenArms.add('戈')
print(EighteenArms)
EighteenArms.remove('簡')
print(EighteenArms)
{'杷頭', '鉞', '矛', '盾', '槍', '鞭', '叉', '白打', '劍', '斧', '綿繩套孛', '殳', '刀', '戟', '弩', '簡', '槁', '弓'}
{'杷頭', '鉞', '矛', '盾', '槍', '鞭', '叉', '白打', '劍', '斧', '綿繩套孛', '殳', '戈', '刀', '戟', '弩', '簡', '槁', '弓'}
{'杷頭', '鉞', '矛', '盾', '槍', '鞭', '叉', '白打', '劍', '斧', '綿繩套孛', '殳', '戈', '刀', '戟', '弩', '槁', '弓'}

          問曰:「今有二集合,一曰五雜俎之十八般,二曰水滸傳之十八般,欲知其相同者,何如?」
          術曰:「二者之交集,乃得矛、弓、槍、戟、鉞、弩、鞭、斧、劍,蓋十八般以其為重。」

Wuzazu = {'弓', '弩', '槍', '刀', '劍', '矛', '盾', '斧', '鉞', '戟', '鞭', '鐧', '槁', '殳', '叉', '杷頭', '綿繩套孛', '白打'}
WaterMargin = {'矛', '錘', '弓', '弩', '銃', '鞭', '鐧', '劍', '鏈', '撾', '斧', '鉞', '戈', '戟', '牌', '棒', '槍', '松'}
print(Wuzazu & WaterMargin)
{'矛', '弓', '槍', '戟', '鉞', '弩', '鞭', '斧', '劍'}

上一篇
〈入門.行列上〉︳GETTING STARTED ON TUPLES AND LISTS
下一篇
〈入門.言語上〉︳GETTING STARTED ON STRINGS
系列文
《雜學》 ︳MISCELLANEOUS LEARNING30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言